﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Vux.SVCore.Server;
using Vux.SVCore.Delegate;

namespace DemoWebServer
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack == true)
            {
                
            }
        }

        protected void btnCheckSvCore_Click(object sender, EventArgs e)
        {
            var v_remote_address = Request.Params["REMOTE_ADDR"];
            var v_ip_address = System.Net.IPAddress.Parse(v_remote_address);
            var app = new SVCoreServer();
            app.AuthComplete += new AuthCompleteHandler(app_AuthComplete);
            app.SVCoreNotAvailable += new SVCoreNotAvailableHandler(app_SVCoreNotAvailable);
            app.AuthClient(v_ip_address, 8989);
            // Session["CopyResponseContext"] = Response;
        }

        private void app_SVCoreNotAvailable()
        {
            Image1.ImageUrl  = "/images/shield.png";
            //var v_cpy_response_context = (HttpResponse)Session["CopyResponseContext"];
            //v_cpy_response_context.Write("SVCore chưa được cài đặt. Bạn cần cài đặt chương trình & chạy chương trình để đăng nhập");
            Response.Write("SVCore chưa được cài đặt. Bạn cần cài đặt chương trình & chạy chương trình để đăng nhập");
        }

        private void app_AuthComplete(object sender, bool state)
        {
            var svCore = (SVCoreServer)sender;
            //Session["ImageBuffer"] = svCore.ImageData;
            //var v_str_fname = "/images/user.jpg";
            //File.WriteAllBytes(Server.MapPath(v_str_fname), svCore.ImageData);
            Image1.ImageUrl = MakeImageSrcData(svCore.ImageData);
            // v_str_fname;//"~/Uc/Picture.ashx"; // ImageFromMemory(svCore.ImageData); // 
            if (state == true)
            {
                Response.Write("<br/>Bắt tay thành công!<br/>Tin mật lấy được: " + svCore.TinMat);
            }
            else
            {
                Response.Write("<br/>Bắt tay không thành công!<br/>Không lấy được tin mật");
            }
        }

        private string MakeImageSrcData(byte[] imageData)
        {
            return "data:image/png;base64," + Convert.ToBase64String(imageData, Base64FormattingOptions.None);
        }
    }
}
